Integrated circuits are often formed using an application specific integrated circuit architecture, which tends to reduce the design costs of the integrated circuit by using predetermined logic blocks in a somewhat customized arrangement to produce an integrated circuit according to a customer's specifications. One aspect of such a customizable integrated circuit design is referred to as RRAM.
RRAM (Reconfigurable RAM) contains sets of memories of the same type that are placed compactly within a memory matrix. An RRAM, as the term is used herein, is a megacell that can be considered as a set of memories with built-in self testing and built-in self correction. RRAM also contains sets of embedded tools that are used for mapping arbitrary logical customer memory designs to the physical memories in the matrix.
In an RRAM design process, the customer memories (memories specified in the customer design) are mapped to memories of one of the four following types:                1. RRAM,        2. single memory,        3. rcell memory, and        4. flip-flop rcell memory.        
Flip-flop rcell memory is memory that is built from flip-flops and logic cells only. In comparison with the other three types of memory, flip-flop rcell memory has two important advantages:                1. Its timing is better than the timing of other memory types, and        2. when the capacity (number of words) of the customer memory is relatively small, the surface area of the integrated circuit required for a flip-flop rcell memory is less than the surface area required by the other memory types.        
The present invention is directed toward an RRAM flip-flop memory generator. This generator creates flip-flop rcell memories with different capacities and widths (number of bits).